package exerciciojsf.mbean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;

import exerciciojsf.armazenamento.Cadastros;
import exerciciojsf.modelo.Usuario;

@ManagedBean(name = "cadastro")
@RequestScoped
public class CadastroUsuario {

	// Classe que armazena os cadastros
	private Cadastros cadastros;

	// Propriedades gerenciadas
	private Usuario novo = new Usuario();
	private String msg = "";
	
	/**
	 * Uma referência ao ManagedBean de sessão que guarda o usuário logado no momento.
	 */
	@ManagedProperty(value="#{gerenciadorLogin}")
    private GerenciadorLogin gerenciadorLogin;

	public CadastroUsuario() {
		super();
		cadastros = Cadastros.getInstance();
	}

	public Usuario getNovo() {
		return novo;
	}

	public void setNovo(Usuario novo) {
		this.novo = novo;
	}

	public String getMsg() {
		String msgTmp = msg;
		msg = null;
		return msgTmp;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public String cadastrarUsuario() {
		if (cadastros.addUsuario(novo)) {
			gerenciadorLogin.logarUsuario(novo);
			novo = new Usuario();
			this.msg = "Usuário cadastrado com sucesso!";
			return "cadastrado";
		} else {
			this.msg = "O usuário informado já existe!";
			return "erroValidacao";
		}
	}

	public GerenciadorLogin getGerenciadorLogin() {
		return gerenciadorLogin;
	}

	public void setGerenciadorLogin(GerenciadorLogin gerenciadorLogin) {
		this.gerenciadorLogin = gerenciadorLogin;
	}
}
